package com.zxq.ai.application.gateway.mt;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum MTStatusEnum {
    OP_API_NOT_EXIST("OP_API_NOT_EXIST", "接口不存在"),
    OP_SYSTEM_ERROR("OP_SYSTEM_ERROR", "网关错误"),
    OP_BIZ_ERROR("OP_BIZ_ERROR", "业务错误"),
    OP_TIMEOUT("OP_TIMEOUT", "请求超时"),
    OP_SYSTEM_PARAM_ERROR("OP_SYSTEM_PARAM_ERROR", "缺少系统参数"),
    OP_HTTP_UNSUPPORTED_CONTENT_TYPE("OP_HTTP_UNSUPPORTED_CONTENT_TYPE", "不支持的ContentType"),
    OP_HTTP_UNSUPPORTED_METHOD_TYPE("OP_HTTP_UNSUPPORTED_METHOD_TYPE", "不支持的HttpMethod"),
    OP_HTTP_SYSTEM_PARAM_ERROR("OP_HTTP_SYSTEM_PARAM_ERROR", "系统参数读取错误"),
    OP_HTTP_FILEUPLOAD_ERROR("OP_HTTP_FILEUPLOAD_ERROR", "文件上传失败"),
    OP_THRIFT_INIT_ERROR("OP_THRIFT_INIT_ERROR", "初始化thrift失败"),
    OP_UNIAUTH_REMOTE_ERROR("OP_UNIAUTH_REMOTE_ERROR", "鉴权服务错误"),
    OP_UNIAUTH_FAILED("OP_UNIAUTH_FAILED", "鉴权失败"),
    OP_API_GRANT_REMOTE_ERROR("OP_API_GRANT_REMOTE_ERROR", "Api权限服务错误"),
    OP_API_GRANT_FAILED("OP_API_GRANT_FAILED", "没有Api权限"),
    OP_REMOTE_ERROR("OP_REMOTE_ERROR", "业务方服务出错"),
    OP_SOCKET_TIMEOUT_EXCEPTION("OP_SOCKET_TIMEOUT_EXCEPTION", "业务方Socket连接超时"),
    OP_CONFIG_ERROR("OP_CONFIG_ERROR", "网关配置错误"),
    OP_CONFIG_NOT_FOUND("OP_CONFIG_NOT_FOUND", "未识别的Api配置"),
    OP_CONFIG_RPC_EMPTY("OP_CONFIG_RPC_EMPTY", "RPC参数为空"),
    OP_SERVICE_CONFIG_EMPTY("OP_SERVICE_CONFIG_EMPTY", "业务配置为空"),
    OP_RPC_REMOTE_ERROR("OP_RPC_REMOTE_ERROR", "业务服务出错"),
    OP_RPC_INVOKE_ERROR("OP_RPC_INVOKE_ERROR", "业务调用失败"),
    OP_RPC_INVOKE_PARAM_EMPTY("OP_RPC_INVOKE_PARAM_EMPTY", "业务调用参数为空"),
    OP_LIMITATION_ERROR("OP_LIMITATION_ERROR", "限流执行错误"),
    OP_LIMITATION_REJECT("OP_LIMITATION_REJECT", "限流拒绝"),
    OP_CIRCUITBREAK("OP_CIRCUITBREAK", "触发熔断，系统错误"),
    OP_CIRCUITBREAK_ERROR("OP_CIRCUITBREAK_ERROR", "熔断处理错误"),
    OP_DEGRADED_UNSUPPORTED_DEGRADETYPE("OP_DEGRADED_UNSUPPORTED_DEGRADETYPE", "不支持的降级类型"),
    OP_DEGRADED_HANDLE_ERROR("OP_DEGRADED_HANDLE_ERROR", "降级处理错误"),
    OP_RESULT_DSL_ERROR("OP_RESULT_DSL_ERROR", "结果集解析失败");

    private final String errorCode;
    private final String description;

}
